基于Ambari的大数据平台搭建
同CDH部署类似,步骤分为ambari的部署和hdp的部署,先以1台为例(内存>6G,磁盘划分/至少40G,/data/10G),后续节点可以通过扩容方式加入集群,可参考:https://blog.csdn.net/qq_32593713/article/details/81429573
一、安装环境准备
1、安装包准备
需要下载jdk-8u144-linux-x64.tar.gz,ambari-xx-centos7.tar.gz,HDP-xx-centos7-rpm.tar.gz,HDP-UTILS-xx-centos7.tar.gz到本地(rpm包非常大),链接:
http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.1.5/ambari-2.6.1.5-centos7.tar.gz
https://download.csdn.net/download/ljk168/10351315
http://public-repo-1.hortonworks.com/HDP-GPL/centos7/2.x/updates/2.6.4.0/HDP-GPL-2.6.4.0-centos7-rpm.tar.gz
http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gz
http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.4.0/HDP-2.6.4.0-centos7-rpm.tar.gz
2、主机准备。
修改虚拟机的网络设置、禁用SElinux、修改主机名、关闭防火墙、ssh免密、开启http服务、设置时钟同步;对于网络的要求是:NAT模式下,所有主机在同网段,且能访问外网。修改IP、网关、DNS;
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改ifcfg-en33的dhcp自动分配修改为静态寻址,增加ip/掩码/网关配置;(网关不管怎么配,都不要配192.168.x.1,因为1号IP是VMnet8网卡的IP)
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="5ed941c2-deb4-48ae-a76d-838503c8683c"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.242.111"
GATWAY="192.168.242.2"
NETMASK="255.255.255.0"
DNS1="192.168.242.2"
配置完成后通过service network restart 重启网卡设置,依然无法连接外网(ping www.baidu.com),可以增加默认dns;
route add default gw 192.168.242.2
其次,增加主机和主机名映射(/etc/hosts),关闭防火墙,关闭SElinux,设置多主机免密,开启http服务;
192.168.242.134 hadoop1
#关闭防火墙,centos7之前版本
systemctl disable firewalld
systemctl stopfirewalld
#关闭防火墙,centos7之后版本
systemctl disable firewalld.service
#重启生效
#vi /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
主机免密的方法:
主机A/B/C为例,设置免密登录的方法:
① 每台机器上执行 ssh-keygen -t rsa ,敲3次回车会在家目录/home/csap下生成隐藏的.ssh目录,首先需要给此目录赋权限700: chmod 700 .ssh;这个目录下有两个文件:id_rsa 私钥和id_rsa.pub 公钥;
② 在此目录中创建 authorized_keys 文件并赋权:
cd .ssh
touch authorized_keys
chmod 644 authorized_keys
③ 以机器A为例,执行以上操作后,如果不知道其他机器的密码,比如绑定4A;把自己的 id_rsa.pub 公钥 以及其他两台机器的公钥粘贴到 authorized_keys文件中,然后把这个文件复制到其他2台机器即可。等于所有机器都有其他机器的公钥,即可完成ssh 免密登录;
④ 如果知道其他机器密码,可以直接执行这个把公钥写到其他机器的authorized_keys文件中:ssh-copy-id -i ~/.ssh/id_rsa.pub?root@127.0.0.1
时钟同步(保证其他节点同ambari主节点时钟一致):
1、所有机器安装ntp :yum -y install ntp
2、主节点配置时钟与自己同步:vim /etc/ntp.conf,删除其他server,加入:
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
3、其他机器同步主节点的时间,vim /etc/ntp.conf,加入:
server xxx.xxx.xxx.xx
4、重启所有机器的ntp服务
systemctl restart ntpd或者service ntpd restart
systemctl status ntpd或者service ntpd status
5、验证同步
所有节点执行ntpq –p,左边出现*号表示同步成功。
6、若不成功;
/usr/sbin/ntpdate stdtime.gov.hk
ntpdate xxx.xxx.xxx.xxx
手动同步时间
开启http服务,/var/www/html/目录下会自动创建cm和cdh目录
yum -y install httpd
systemctl start httpd 或service httpd start
安装jdk,配置JAVA_HOME;
# 卸载其他jdk,使用下面的命令查看当前所有的Java环境的安装包
rpm -qa | grep java
# 使用下面的命令删除所有的Java安装包
rpm -e --nodeps 包名
# 安装jdk
mkdir /data/jdk
cd /data/jdk
tar -xvf jdk-8u144-linux-x64.tar.gz
# 修改环境变量,配置java的路径
vi ~/.bash_profile
# 增加配置:
JAVA_HOME=/data/jdk/jdk1.8.0_144
PATH=$PATH:$HOME/bin:${JAVA_HOME}/bin:${JAVA_HOME}/sbin
# 使生效
source ~/.bash_profile
#java -version 指令查看是否生效
3、配置mariaDB。作为hive和ambari的元数据库
# 安装数据库
yum -y install mariadb-server
# 启动
systemctl start mariadb.service
systemctl enable mariadb.service
#首先是设置密码,会提示先输入密码,直接回车,设置密码123456,一路回车
mysql_secure_installation
# 配置数据库
mysql -u root -p 123456
# (1)创建ambari数据库及用户:
create database ambari;
CREATE USER 'ambari'@'%'IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
FLUSH PRIVILEGES;
# (2)创建Hive数据库和用户 再执行下面的语句:
create database hive;
CREATE USER 'hive'@'%'IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON . TO 'hive'@'%';
FLUSH PRIVILEGES;
# (3)创建Oozie数据库和用户 再执行下面的语句:
create database oozie;
CREATE USER 'oozie'@'%'IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON . TO 'oozie'@'%';
FLUSH PRIVILEGES;
# 最后,安装数据库的jdbc
yum -y mysql-connector-java
# jdbc的安装路径:/usr/share/java/mysql-connector-java.jar
4、上传安装包,创建本地yum源,开始安装ambari。
配置yum源(所有节点),删除/etc/yum.repos.d/下面的所有repo文件,清除之前的缓存yum clean all,虚拟机设置的选项中勾选“已连接”:
# 挂载文件(注意这里使用的是当时生效,关机后会失效。建议设置永久挂载文件):
mount /dev/cdrom /mnt/
# 设置自己的yum源
vi /etc/yum.repos.d/my.repo
[myrepo]
baseurl=file:///mnt
enabled=1
gpgcheck=0
下载到本地的hdp和ambari的RPM文件上传到/var/wwww/html/ambari目录下,有文件过大(>4G),xshell的rz指令无法直接上传,可以参考帖子:https://blog.csdn.net/FLawiet/article/details/89597389
# 解压安装包
cd /var/www/html/ambari/
tar -zxvf ambari-2.6.1.5-centos7.tar.gz -C /var/www/html/ambari
tar -zxvf HDP-2.6.4.0-centos7-rpm.tar.gz -C /var/www/html/ambari
mkdir /var/www/html/ambari/HDP-UTILS/
tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz /var/www/html/ambari/HDP-UTILS/
# 解压后,需要删除目录下所有的html文件,不然后续会卡主,避免出错;
cd /var/www/html/ambari/
find . -name *.html
# html文件集中在一个文件夹下;
cd ./HDP/centos7/2.6.4.0-91/
rm *.html
# 解压后会在文件夹最底层内生成ambari.repo和hdp.repo和hdp-utils.repo文件
# 修改每个url后,拷贝到/etc/yum.repos.d/目录下,作为本地yum源;
# ① 在 /etc/yum.repos.d文件夹内修改ambari.repo,确保能够http访问baseurl;
cat ambari.repo # 内容如下
#VERSION_NUMBER=2.6.1.5-3
[ambari-2.6.1.5]
name=ambari Version - ambari-2.6.1.5
baseurl=http://192.168.242.111/ambari/ambari/centos7/2.6.1.5-3/
gpgcheck=1
gpgkey=http://192.168.242.111/ambari/ambari/centos7/2.6.1.5-3/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
# ② 在 /etc/yum.repos.d文件夹内修改hdp.repo,确保能够http访问baseurl;
cat hdp.repo # 内容如下
#VERSION_NUMBER=2.6.4.0-91
[HDP-2.6.4.0]
name=HDP Version - HDP-2.6.4.0
baseurl=http://192.168.242.111/ambari/HDP/centos7/2.6.4.0-91/
gpgcheck=1
gpgkey=http://192.168.242.111/ambari/HDP/centos7/2.6.4.0-91/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
[HDP-UTILS-1.1.0.22]
name=HDP-UTILS Version - HDP-UTILS-1.1.0.22
baseurl=http://192.168.242.111/ambari/HDP-UTILS/centos7/1.1.0.22
# baseurl=http://192.168.242.111/ambari/HDP-UTILS
gpgcheck=1
gpgkey=http://192.168.242.111/ambari/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
# gpgkey=http://192.168.242.111/ambari/HDP-UTILS/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
开始安装ambari-server。
# 安装
yum install -y ambari-server
# 配置
ambari-server setup
配置中会提示输入JAVA_HOME和ambari元数据库的登录密码:
登录ambari数据库,对数据库进行初始化
mysql -uroot -p123456
use ambari
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
show tables;
完成数据库的初始化后,启动 ambari-server start,如果中间报错可以看日志:/var/log/ambari-server/ambari-server.log,一般是数据库权限的问题,类似CDH的cm,安装成功后web访问(admin,admin);
5、开始使用ambari界面化操作,配置HDP。
按照指引操作,选择HDP的rmp包的位置:
可能出现的错误:Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password),请看一下authorized_keys 文件是否有服务器自己的公钥内容。出现错误:NetUtil.py:124 - Server at https://hadoop1:8440 is not reachable, sleeping for 10 seconds...", None)参考:https://blog.csdn.net/qq_41805514/article/details/88871477
组件安装,由于资源有限,这里只安装hdfs,mr,yarn,zk和spark组件为例。